# 代码编写者： 李朔
# 开发时间： 2021/7/19 16:36
ratings=[1,2,87,87,87,2,1]

def candy(ratings) ->int:
    candy_list=[]
    ratings_len=len(ratings)
    #初始化糖果数
    for i in range(ratings_len):
        candy_list.append(1)
    i=0
    #先进行右侧的单侧检测
    while i<ratings_len:
        #不是最后一个变量
        if i<ratings_len-1:
            if ratings[i]<ratings[i+1] and candy_list[i]>=candy_list[i+1]:
                candy_list[i+1]=candy_list[i]+1
            elif ratings[i]>ratings[i+1] and candy_list[i+1]>=candy_list[i]:
                candy_list[i]=candy_list[i+1]+1
            else:
                pass
        i+=1
    # 进行左侧的单侧检测
    i=ratings_len-1
    while i>=0:
        #不是第一个变量
        if i>0:
            if ratings[i-1]<ratings[i] and candy_list[i-1]>=candy_list[i]:
                candy_list[i]=candy_list[i-1]+1
            elif ratings[i-1]>ratings[i] and candy_list[i]>=candy_list[i-1]:
                candy_list[i-1]=candy_list[i]+1
            else:
                pass
        i-=1
    candy_count=0
    for i in candy_list:
        candy_count+=i
    return candy_count

print(candy(ratings))
